package com.yserp.project.erp.order.saleorder.domain;

import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yserp.framework.aspectj.lang.annotation.Excel;
import com.yserp.framework.web.domain.BaseEntity;
import com.yserp.project.erp.common.anno.MybatisLikeSearch;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 销售订单对象 erp_sale_order
 *
 * @author yserp
 * @date 2022-07-07
 */
@TableName("erp_sale_order")
@Data
public class ErpSaleOrder extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 销售订单id
     */
    private Long id;

    /**
     * 订单号
     */
    @Excel(name = "订单号")
    @MybatisLikeSearch
    private String orderCode;

    /**
     * 供方
     */
    @Excel(name = "供方")
    private String providerName;

    /**
     * 客户主键ID
     */
    private Long customerId;

    /**
     * 客户名称
     */
    @Excel(name = "客户名称")
    @MybatisLikeSearch
    private String customerName;

    /**
     * 业务责任人
     */
    @Excel(name = "业务责任人")
    @MybatisLikeSearch
    private String businessManager;

    /**
     * 订单日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "订单日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date orderDate;

    /**
     * 订单状态（0:未审核 1:已审核）
     */
    @Excel(name = "订单状态", readConverterExp = "0=未审核,1=已审核")
    private String orderStatus;

    /**
     * 生产状态（0:未生产，1:生产中，2:生产完成）
     */
    @Excel(name = "生产状态", readConverterExp = "0=未生产,1=生产中,2=生产完成")
    private String produceStatus;

    /**
     * 发货状态（0:未发货，1:已发货）
     */
    @Excel(name = "发货状态", readConverterExp = "0=待发货,1=已发货")
    private String deliveryStatus;

    @Excel(name = "收款状态", readConverterExp = "0=未收款,1=部分收款,2=全部收款")
    private String receiveStatus;

    /**
     * 销售总数量
     */
    private BigDecimal allNums;

    /**
     * 出库总数量
     */
    private BigDecimal outNums;

    /**
     * 收款金额
     */
    @Excel(name = "收款金额")
    private BigDecimal receiveAmount;

    /**
     * 销售金额
     */
    @Excel(name = "销售金额")
    private BigDecimal amounts;

    /**
     * 删除标志（0代表存在 1代表删除）
     */
    @TableLogic
    private String delFlag;

}
